import axios from 'axios';

// 设置请求头
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';

// 创建 axios 实例
const service = axios.create({
    // 根据不同环境设置请求的基础 URL
    baseURL: import.meta.env.VITE_API_BASE_URL,
    // 请求超时时间
    timeout: 10000
});

// 请求拦截器
service.interceptors.request.use(
    (config) => {
        // 在发送请求之前做些什么，例如添加 token
        // const token = localStorage.getItem('token');
        // if (token) {
        //   config.headers['Authorization'] = `Bearer ${token}`;
        // }
        return config;
    },
    (error) => {
        // 处理请求错误
        console.error('请求出错:', error);
        return Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    (response) => {
        // 对响应数据做点什么
        const res = response.data;
        // 这里可以根据后端返回的状态码进行不同的处理
        if (res.code !== 200) {
            console.error('请求失败:', res.message);
            return Promise.reject(new Error(res.message || 'Error'));
        }
        return res;
    },
    (error) => {
        // 处理响应错误
        console.error('响应出错:', error);
        return Promise.reject(error);
    }
);

export default service;